package com.pro.service;

import com.pro.pojo.JsComment;
import com.pro.pojo.JsCourse;
import com.pro.pojo.JsMicrocircle;
import com.pro.pojo.Product;

import java.util.List;

public interface CommentService {
    //获取评论个数
    Integer countCommentNum(String type, String userType, String status, String commentDate);

    //获取评论人数
    Integer countCommentPeople(String type, String userType, String status, String commentDate);

    //拦截、恢复评论
    boolean updateStatus( String status, Integer id);

    //删除评论
    boolean deleteComment(Integer id);

    //获取个人商品评论个数
    Integer personalProductNum(Integer createId, String type, String userType, String status, String commentDate);

    //获取个人商品评论人数
    Integer personalProductPeople(Integer createId, String type, String userType, String status, String commentDate);

    //获取个人课程评论个数
    Integer personalCourseNum(Integer createId, String type, String userType, String status, String commentDate);

    //获取个人课程评论人数
    Integer personalCoursePeople(Integer createId, String type, String userType, String status, String commentDate);

    //获取个人微圈评论个数
    Integer personalMicrocircleNum(Integer userId, String type, String userType, String status, String commentDate);

    //获取个人微圈评论人数
    Integer personalMicrocirclePeople(Integer userId, String type, String userType, String status, String commentDate);

    /*商品评论*/
    //获取前台用户所有商品评论
    List<JsComment> getUserProductComments(Integer createId,String status);

    //获取管理人员所有商品评论
    List<JsComment> getProductComments(Integer createId,String status);

    /*课程评论*/
    //获取前台用户所有课程评论
    List<JsComment> getUserCourseComments(Integer createId,String status);

    //获取管理人员所有课程评论
    List<JsComment> getCourseComments(Integer createId,String status);

    /*微圈评论*/
    //获取前台用户所有微圈评论
    List<JsComment> getUserMicrocircleComments(Integer userId,String status);

    //获取管理人员所有微圈评论
    List<JsComment> getMicrocircleComments(Integer userId,String status);

    //添加一条微圈评论
    boolean addMicrocircleComment(JsComment layForm);

    //查询所有状态为4类型为后端的所有微圈评论
    List<JsComment> getTypeComment();

    //点击隐藏或显示修改状态
    boolean updateDisplay(JsComment param);

    /*查看详情*/
    //获取商品详情信息
    Product getProductInformation(Integer id);

    //获取课程详情信息
    JsCourse getCourseInformation(Integer id);

    //获取文章详情信息
    JsMicrocircle getMicrocircleInformation(Integer id);

    //获取全部评论
    List<JsComment> getAllComment(Integer commodityId,Integer type);

    //获取前台全部评论
    List<JsComment> getAllBeforeComment(Integer commodityId,Integer type);

    //提交评论
    boolean submitComment(Integer userId,Integer commodityId,Integer parentId,String content,String commentDate,Integer display,Integer type,String userType);

    //隐藏、显示评论
    boolean showComment(Integer id,Integer display);
}
